/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.servico;

import br.com.deployment.entidade.acesso.Usuario;
import br.com.deployment.entidade.fermojupi.AtoItem;
import br.com.deployment.entidade.humana.Pessoa;
import br.com.deployment.entidade.protocolo.Pagamento;
import br.com.deployment.entidade.protocolo.Parcela;
import br.com.deployment.entidade.protocolo.Protocolo;
import br.com.deployment.entidade.protocolo.ServicoProtocolo;
import br.com.deployment.entidade.selo.Selo;
import br.com.deployment.entity.orcamento.Orcamento;
import br.com.deployment.enums.TipoRelatorioLancamento;
import br.com.deployment.utilitario.VOServicoProtocoloAtoCampo;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author roniere
 */
@Remote
public interface ProtocoloServico {
    
    public Protocolo salvar(Protocolo p);
     
    public Protocolo find(int id);
    
    public List<Protocolo> buscar(Protocolo protocolo);
    
    public List<Protocolo> findAll();
    
    public void atualizar(Protocolo p);
    
    public Protocolo orcamentoToProtocolo(Orcamento o);
    
    public List<BigDecimal> valorAtoProtocolo(AtoItem ai, BigDecimal valor);
    
    public VOServicoProtocoloAtoCampo valorAtoProtocolo(ServicoProtocolo sp);
    
    public List<ServicoProtocolo> servicoProtocolos(Protocolo protocolo);
    
    public List<Selo> sugerirSelo(AtoItem atoItem, List<Selo> selos);
    
    public List<ServicoProtocolo> tipoSeloProtocolo(Selo selo);
    
    public List<Protocolo> recentes();
    
    public List<Protocolo> pendentes();
    
    public List<Protocolo> pendentesSelo();
    
    public List<Protocolo> pendentesPagamento();
    
            
    public List<Protocolo> finalizados();
    
    public Protocolo getProtocoloToSelar(int id);
    
    public void cancelarSeloProtocolo(int id);
    
    public boolean verificaPendenciaSelo(int p);
    
    public boolean verificaPendenciaPagamento(int p);
    
    public List<Protocolo> pendentesSelo(Date dataInicial, Date dataFinal);
    
    public List<Protocolo> pendentesPagamento(Date dataInicial, Date dataFinal);
    
    public List<Protocolo> finalizados(Date dataInicial, Date dataFinal);
    
    public void gerarRelatorioProtocoloDate(TipoRelatorioLancamento tipo, Date dataInicial, Date dataFinal);
    
    public List<Protocolo> relatorioTodosProtocolos(Date dataInicial, Date dataFinal);
    
    public List<Protocolo> pesquisaPessoaProtocolo(Pessoa pessoa);
    
    public void relatorioProtocolo(int id);
    
    public void relatorioProtocoloRecibo(int id);
    
    public List<ServicoProtocolo> relatorioSeloProtocolo(Date data, Date dataFinal);
    
    public void relatorioSeloProtocolo(List<ServicoProtocolo> pro);
    
    public List<Protocolo> IntervaloSeloProtocolo(Selo selo, Integer num1, Integer num2);
    
    
    //CAIXA
     public List<Pagamento> pagamentosData(Date data);

    public List<Protocolo> protocolosData(Date data);

    public BigDecimal protocoloCaixaMes(Date dataini, Date datafim);
    
    public BigDecimal protocoloCaixaMesCartorio(Date dataini, Date datafim);
    
    public BigDecimal protocoloCaixaMesFerm(Date dataini, Date datafim);

    public BigDecimal caixaAreceber(Date dataInicial, Date dataFinal);
    public BigDecimal caixaRecebido(Date dataInicial, Date dataFinal);
            
    public List<Protocolo> pesquisarCaixaProtocolo(Date dataInicial, Date dataFinal);

    public List<Pagamento> pesquisarCaixaPagamento(Date dataInicial, Date dataFinal);
    
    
    
    public BigDecimal protocoloCaixaMesBig(Date dataini, Date datafim);
}
